package ch10;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class GenericCollection {

	public static void main(String[] args) {
		//在大部分情况下，一个集合只用于保存一类数据
		//为了避免在获取数据时进行类型检查，可以使用泛型集合，在保存数据时进行类型检查
		//使用泛型集合语法，在定义集合对象时，进行类型的声明
		//List<Computer> list = new ArrayList<Computer>();
		List<Computer> list = new ArrayList<>();//jdk1.7后支持
		list.add(new Computer("HP",5000));
		list.add(new Computer("HW",5200));
		list.add(new Computer("DELL",5400));
		
		//使用泛型集合在保存数据时，进行类型检查，会产生类型检查异常
		//list.add(new String("Hello Collection"));
		//list.add(new Date());
		
		//使用泛型集合后，在获取数据时不需要进行类型转换
		for(Computer computer : list) {
			System.out.println(computer);
		}
		
		Computer obj = list.get(0);
		
		Iterator<Computer> iterator = list.iterator();
		while(iterator.hasNext()) {
			//使用泛型后可以保证取数据时不会发生类型转换异常
			Computer computer = iterator.next();
			System.out.println(computer);
		}

	}

}
